O módulo CopyToGDriver_Checks.sh faz parte do projeto CopyToGDriver e é responsável por validar o ambiente e os pré-requisitos antes de qualquer operação de sincronização com o Google Drive (via rclone).
Ele verifica:
Logo no início, o script:
SCRIPT_DIR).include_loader.sh e executa load_all_modules.CopyToGDriver_Utils.shCopyToGDriver_Config.shEsses módulos fornecem funções auxiliares como write_color_output, resolve_path, file_count, get_disk_usage_gb e get_disk_space_gb, além de variáveis de configuração como LOCAL_FOLDER e REMOTE_NAME.
detect_platform()Detecta o sistema operacional atual, retornando um dos valores:
linuxmacoswindowsunknownO resultado é armazenado em PLATFORM e utilizado para ajustar caminhos, mensagens e comandos sugeridos.
check_rclone_installed()Verifica se o rclone está instalado e disponível no PATH.
sudo apt install rclonebrew install rclonechoco install rclonev1.67.0.check_internet_connection()Verifica se há conexão ativa com a internet, tentando acessar alguns endpoints conhecidos:
https://www.google.comhttps://www.cloudflare.comhttps://rclone.orgUtiliza curl em modo silencioso, com timeout de 10 segundos.
Se todos falharem, exibe mensagens de alerta sobre falta de conexão, DNS ou proxy.
check_local_folder()Valida a pasta local que será usada na sincronização (LOCAL_FOLDER).
Passos executados:
LOCAL_FOLDER está definida (não vazia).resolve_path.mkdir -p.file_count).get_disk_usage_gb, convertido para MB na mensagem).Se alguma etapa falhar (por exemplo, sem permissão), a função retorna erro (1).
check_rclone_remote()Verifica se o remote do rclone configurado em REMOTE_NAME está disponível e funcional.
Passos:
/c/Users/$USERNAME/AppData/Roaming/rclone/rclone.conf$HOME/.config/rclone/rclone.conf[REMOTE_NAME] definida no rclone.conf.rclone lsd "$REMOTE_NAME:" --max-depth 1
rclone listremotes) se algo estiver errado.check_disk_space()Verifica o espaço livre em disco na unidade onde está a pasta local.
get_disk_space_gb "$LOCAL_FOLDER" (função utilitária) para obter o valor.< 2GB → ❌ Espaço insuficiente2GB a < 5GB → ⚠️ Espaço limitado≥ 5GB → ✅ Espaço suficientecheck_sensitive_location()Garante que a sincronização não seja executada em locais sensíveis do sistema.
/c/Windows/c/Program Files/c/Users/Public//usr/var/etc/home (raiz geral, não diretórios específicos do usuário)Se o LOCAL_FOLDER for igual ou estiver contido em um desses caminhos, é emitido alerta e a função retorna erro.
check_prerequisites()Esta é a função que consolida todas as verificações.
Ela é pensada para ser chamada por outros módulos (como o de sincronização), antes de qualquer operação crítica.
Ordem de execução:
check_rclone_installedcheck_internet_connectioncheck_local_foldercheck_rclone_remotecheck_disk_spacecheck_sensitive_locationSe qualquer uma delas falhar (retornar diferente de 0), a função interrompe o fluxo e retorna 1.
Caso todas passem, exibe:
✅ Todos os pré-requisitos atendidos.
E retorna 0.
| Variável | Origem | Descrição |
|---|---|---|
SCRIPT_DIR |
Detectado no início do módulo | Caminho absoluto do diretório onde o script está. |
PLATFORM |
detect_platform() |
Plataforma atual (linux, macos, windows, unknown). |
LOCAL_FOLDER |
Configuração externa (Config) | Pasta local alvo da sincronização. |
REMOTE_NAME |
Configuração externa (Config) | Nome do remote configurado no rclone. |
USERNAME |
Ambiente do sistema | Usado para montar caminhos no Windows. |
| Sistema | Suporte | Observações |
|---|---|---|
| Linux | ✅ Total | Testes com curl, df, rclone e caminhos em $HOME. |
| macOS | ✅ Total | Usa mesmas funções POSIX de Linux. |
| Windows (Git Bash/WSL) | ✅ Total | Caminhos especiais para rclone.conf e comandos ilustrativos (choco). |
| Outros | ⚠️ Parcial | PLATFORM=unknown, algumas mensagens podem não ser específicas. |
Trecho típico em outro script (como o de sincronização):
if check_prerequisites; then
echo "Ambiente OK, prosseguindo com a sincronização..."
# chama função de sync aqui
else
echo "Erro nos pré-requisitos. Verifique as mensagens acima."
exit 1
fi
| Campo | Valor |
|---|---|
| Script | CopyToGDriver_Checks.sh |
| Versão | 0.2.0 |
| Autores | Paulo SSPacheco + ChatGPT (GPT-5) |
| Função | Verificação de pré-requisitos e ambiente |
| Módulo | Checks (multiplataforma) |
© 2025 Paulo SSPacheco + ChatGPT (GPT-5) — Todos os direitos reservados.